Are you doing a partial refresh or a complete refresh in the repeat controls onClick event? Make sure you are targeting the panel that has the document datasource associated to it.
Here is the source of a working example of this.
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
styleClass="PageMargin" style="font-size:16pt">
<xp:this.data>
<xp:dominoView var="personView" viewName="PersonView" />
<xp:dominoDocument var="document1" formName="PersonForm"
documentId="#{javascript:sessionScope.docUNID;}"
action="openDocument">
</xp:dominoDocument>
</xp:this.data>
<xp:table styleClass="PageMargin" style="margin-left:25px;margin-top:25px;font-size:16pt">
<xp:tr style="font-size:16pt">
<xp:td valign="top" style="width:225px;font-size:16pt">
<xp:dataTable rows="30" id="dataTable1"
value="#{personView}" var="colName1" style="font-size:16pt">
<xp:this.facets>
<xp:pager partialRefresh="true"
layout="Previous Group Next" xp:key="header" id="pager1" style="font-size:16pt">
</xp:pager>
</xp:this.facets>
<xp:column id="column1" style="font-size:16pt">
<xp:link escape="true" id="link1" style="font-size:16pt">
<xp:this.text><![CDATA[#{javascript:var fn:String = colName1.getDocument().getItemValueString("FirstName");
var ln:String = colName1.getDocument().getItemValueString("LastName");
return fn + " " + ln;}]]></xp:this.text>
<xp:eventHandler event="onclick"
submit="true" refreshMode="partial" refreshId="PersonData"
id="eventHandler1">
<xp:this.action><![CDATA[#{javascript:sessionScope.docUNID = colName1.getDocument().getUniversalID();}]]></xp:this.action>
</xp:eventHandler>
</xp:link>
</xp:column>
</xp:dataTable>
</xp:td>
<xp:td style="font-size:16pt"> </xp:td>
<xp:td styleClass="PageMargin" style="font-size:16pt">
<xp:panel id="PersonData" style="font-size:16pt">
<xp:table
rendered="#{javascript:sessionScope.docUNID!=null;}" style="font-size:16pt">
<xp:tr style="font-size:16pt">
<xp:td style="font-size:16pt">
<xp:label value="First name:"
id="firstName_Label1" for="firstName1" style="font-size:16pt">
</xp:label>
</xp:td>
<xp:td style="font-size:16pt">
<xp:inputText
value="#{document1.FirstName}" id="firstName1" style="font-size:16pt">
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr style="font-size:16pt">
<xp:td style="font-size:16pt">
<xp:label value="Middle init:"
id="middleInit_Label1" for="middleInit1" style="font-size:16pt">
</xp:label>
</xp:td>
<xp:td style="font-size:16pt">
<xp:inputText
value="#{document1.MiddleInit}" id="middleInit1" style="font-size:16pt">
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr style="font-size:16pt">
<xp:td style="font-size:16pt">
<xp:label value="Last name:"
id="lastName_Label1" for="lastName1" style="font-size:16pt">
</xp:label>
</xp:td>
<xp:td style="font-size:16pt">
<xp:inputText
value="#{document1.LastName}" id="lastName1" style="font-size:16pt">
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr style="font-size:16pt">
<xp:td style="font-size:16pt">
<xp:label value="Full name:"
id="fullName_Label2" for="fullName1" style="font-size:16pt">
</xp:label></xp:td>
<xp:td style="font-size:16pt">
<xp:inputText value="#{document1.FullName}"
id="fullName1" style="font-size:16pt">
</xp:inputText></xp:td>
</xp:tr>
<xp:tr style="font-size:16pt">
<xp:td style="font-size:16pt">
<xp:label value="Bday:" id="bday_Label1"
for="bday1" style="font-size:16pt">
</xp:label>
</xp:td>
<xp:td style="font-size:16pt">
<xp:inputText value="#{document1.Bday}"
id="bday1" style="font-size:16pt">
<xp:dateTimeHelper
id="dateTimeHelper1">
</xp:dateTimeHelper>
<xp:this.converter>
<xp:convertDateTime type="both"
dateStyle="short" timeStyle="short">
</xp:convertDateTime>
</xp:this.converter>
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr style="font-size:16pt">
<xp:td style="font-size:16pt">
<xp:label value="Email address:"
id="emailAddress_Label1" for="emailAddress1" style="font-size:16pt">
</xp:label>
</xp:td>
<xp:td style="font-size:16pt">
<xp:inputText
value="#{document1.EmailAddress}" id="emailAddress1" style="font-size:16pt">
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr style="font-size:16pt">
<xp:td style="font-size:16pt">
<xp:label value="Phone number:"
id="phoneNumber_Label1" for="phoneNumber1" style="font-size:16pt">
</xp:label>
</xp:td>
<xp:td style="font-size:16pt">
<xp:inputText
value="#{document1.PhoneNumber}" id="phoneNumber1" style="font-size:16pt">
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr style="font-size:16pt">
<xp:td style="font-size:16pt">
<xp:label value="City:" id="city_Label1"
for="city1" style="font-size:16pt">
</xp:label>
</xp:td>
<xp:td style="font-size:16pt">
<xp:inputText value="#{document1.City}"
id="city1" style="font-size:16pt">
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr style="font-size:16pt">
<xp:td style="font-size:16pt">
<xp:label value="State:"
id="state_Label1" for="state1" style="font-size:16pt">
</xp:label>
</xp:td>
<xp:td style="font-size:16pt">
<xp:inputText value="#{document1.State}"
id="state1" style="font-size:16pt">
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr style="font-size:16pt">
<xp:td style="font-size:16pt">
<xp:label value="Postal code:"
id="postalCode_Label1" for="postalCode1" style="font-size:16pt">
</xp:label>
</xp:td>
<xp:td style="font-size:16pt">
<xp:inputText
value="#{document1.PostalCode}" id="postalCode1" style="font-size:16pt">
</xp:inputText>
</xp:td>
</xp:tr>
<xp:tr style="font-size:16pt">
<xp:td style="font-size:16pt">
<xp:label value="Hobbies:"
id="hobbies_Label1" for="hobbies1" style="font-size:16pt">
</xp:label>
</xp:td>
<xp:td style="font-size:16pt">
<xp:repeat id="repeat1" rows="30" value="#{document1.Hobbies}" var="HobbyList" style="font-size:16pt">
<xp:text escape="false" id="computedField2" style="font-size:16pt">
<xp:this.value><![CDATA[#{javascript:HobbyList + "<br />"}]]></xp:this.value>
</xp:text>
</xp:repeat>
</xp:td>
</xp:tr>
</xp:table>
</xp:panel>
</xp:td>
</xp:tr>
</xp:table>
</xp:view>